
import numpy as np
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用SimHei字体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 设置随机种子以确保结果的可重复性
np.random.seed(42)

# 生成正态分布的随机数据
mu = 70  # 分布的均值
sigma = 10  # 分布的标准差
data = mu + sigma * np.random.randn(1000)

# 定义直方图的柱数
num_bins = 30

# 创建图形和子图
fig, ax = plt.subplots()

# 绘制数据的直方图
n, bins, patches = ax.hist(data, num_bins, density=True, alpha=0.6, color='b')

# 添加正态分布的最佳拟合线
y = ((1 / (np.sqrt(2 * np.pi) * sigma)) *
     np.exp(-0.5 * ((bins - mu) / sigma)**2))
ax.plot(bins, y, '--', color='r')

# 设置标签和标题
ax.set_xlabel('数据值')
ax.set_ylabel('概率密度')
ax.set_title('正态分布的直方图')

# 调整布局以防止标签被剪切
fig.tight_layout()

# 显示图形
plt.show()